package com.liveneo.adapter.base.support;

import java.util.UUID;
import org.apache.commons.lang3.StringUtils;

/**
 * 线程存储类
 * 
 * @author fucy
 *
 */
public class ThreadStore {
    /**
     * 响应移动端请求的唯一标识码
     */
    private static ThreadLocal<String> curRequestUUID = new ThreadLocal<String>();
    /**
     * 当前线程处理类型
     */
    private static ThreadLocal<String> curRequestType = new ThreadLocal<String>();

    /**
     * 获取请求的唯一标识码
     * @return
     */
    public static String getCurRequestUUID() {
        if (curRequestUUID.get() == null) {
            // 第一次获取值，生产uuid唯一码
            String uuid = StringUtils.replace(UUID.randomUUID().toString(), "-", "");
            curRequestUUID.set(uuid);
            return uuid;
        } else {
            return curRequestUUID.get();
        }
    }

    /**
     * 设置请求类型
     */
    public static void setCurRequestType(String type) {
        curRequestType.set(type);
    }

    /**
     * 获取请求类型
     * @return
     */
    public static String getCurRequestType() {
        return curRequestType.get();
    }

    /**
     * 调用完毕后，手动清空当前线程的变量，避免线程池产生的问题
     */
    public static void clear() {
        curRequestUUID.remove();
        curRequestType.remove();
    }
}
